<html>
	<head>
		<script type="text/javascript">
			window.onload= function () { 

				// var hash = {
				// 	'aaa': 'aaa',
				// 	bbb: 'bbb',
				// 	ccc: 'ccc',
				// 	ddd: 'ddd',
				// 	eee: 'eee',
				// }
				// console.log(hash.aaa);
				// console.log(hash.bbb);

				// for(var temp in hash){
				// 	console.log(temp+"-------"+hash[temp])
				// }





				// Set实例的方法分为两大类：操作方法（用于操作数据）和遍历方法（用于遍历成员），操作方法有：add(value)、delete(value)、has(value)、clear()；遍历方法有：keys()、values()、entries()、forEach()
				// Set只能实现去重，不能实现乱序。 

				// 1、ES6——new Set方法
				const myArray = [1,1,2,2,3,3,4,4,5,5]
				console.log(myArray);
				var setArray = [...new Set(myArray)];
				console.log(setArray);// [1, 2, 3, 4, 5]     [...new Xxx()]的作用是把Set等有迭代器特性的对象转化成数组，普通的对象不能用这种语法。

				var aaa = new Set(myArray);
				for(let item of aaa){
					console.log(item);
				}

				// 数组去重
				// 2、Array.from（该方法可以将 Set 结构转为数组）
				function dedupe(array) {
				  return Array.from(new Set(array));
				}
				dedupe([1, 1, 2, 3]) // [1, 2, 3]

				// 作者：Julian小龙虾
				// 链接：https://www.jianshu.com/p/fef2f1e9b544
				// 來源：简书
				// 简书著作权归作者所有，任何形式的转载都请联系作者获得授权并注明出处。




				const set = new Set(['aa','bb','cc']);
				 
				// 获取所有key
				for(let key of set.keys()) {
				  console.log(key);
				}
				// "aa"
				// "bb"
				// "cc"
				 
				 
				// 获取所有value
				for(let val of set.values()) {
				  console.log(val);
				}
				// "aa"
				// "bb"
				// "cc"
				 
				 
				// key and value
				for(let item of set.entries()) {
				  console.log(item);
				}
				// ["aa", "aa"]
				// ["bb", "bb"]
				// ["cc", "cc"]
				 
				 
				// 我习惯的方式
				for(let item of set) {
				  console.log(item);
				}
				// "aa"
				// "bb"
				// "cc"
				 
				 
				// 更方便的操作
				set.forEach((key,val) => console.log(key + ": " + val))  // 箭頭函數表示回調
				// "aa: aa"
				// "bb: bb"
				// "cc: cc"
				// --------------------- 
				// 作者：逸川同学 
				// 来源：CSDN 
				// 原文：https://blog.csdn.net/qq_38238041/article/details/88870284 
				// 版权声明：本文为博主原创文章，转载请附上博文链接！
			}
		</script>
	</head>
	<body>
		
	</body>
</html>